#ifndef ABSTRACTQUERIES_H
#define ABSTRACTQUERIES_H

#include <QObject>
#include <QStringList>
#include "sm-global.h"

class AbstractQueries : public QObject
{
    Q_OBJECT
public:
    explicit AbstractQueries(QObject *parent = 0) : QObject(parent) {}

    virtual QString selectQuery (int type, int count) const = 0;
    virtual QString insertQuery (int type, int count) const = 0;
    virtual QString updateQuery (int type, int count) const = 0;
    virtual QString deleteQuery (int type, int count) const = 0;
    virtual QString existsQuery() const = 0;

public slots:
    virtual void initialize() {}

protected:
    virtual QString generateQuery (QList<QStringList> queriesList, int type, int count) const;
};

#endif // ABSTRACTQUERIES_H
